learn

loss, cost, objective Function에 대하여

출처: Understanding Deep Learning - Simon Prince

실무에서는 loss function과 cost function이 혼용되지만, 엄밀히는 서로 다른 범위를 가리킨다.

Loss Function — 데이터 포인트 하나의 오차

훈련 데이터에서 하나의 샘플 (xi,yi)(\mathbf{x}_i, y_i)에 대해, 모델의 예측 y^i\hat{y}_i과 실제값 yiy_i 사이의 오차를 측정하는 함수다.

i=L(y^i,  yi)\ell_i = L(\hat{y}_i,\; y_i)

핵심은 "a data point" — 개별 데이터 포인트 하나에 연결된 항(term)이라는 것.

Cost Function — 실제로 최소화하는 전체 목적량

개별 loss들을 모아서 만든 전체 목적함수이며, gradient-descent|Gradient Descent가 실제로 줄이려고 하는 대상이다.

J=1ni=1nL(y^i,  yi)J = \frac{1}{n}\sum_{i=1}^{n} L(\hat{y}_i,\; y_i)

여기서 중요한 점은, cost function에는 개별 데이터 포인트와 무관한 항도 포함될 수 있다는 것이다. 대표적으로 regularization|정규화(Regularization) 항이 여기 해당한다.

J=1ni=1nL(y^i,  yi)loss들의 평균+λw2데이터 포인트와 무관한 항J = \underbrace{\frac{1}{n}\sum_{i=1}^{n} L(\hat{y}_i,\; y_i)}_{\text{loss들의 평균}} + \underbrace{\lambda \|\mathbf{w}\|^2}_{\text{데이터 포인트와 무관한 항}}

λw2\lambda\|\mathbf{w}\|^2 같은 L2 regularization 항은 특정 (xi,yi)(x_i, y_i)와 아무 관련이 없다. 가중치 자체가 과도하게 커지는 것을 억제하는 제약일 뿐이다. 이런 항은 loss function이 아니라 cost function 수준에서만 존재한다.

이것이 두 개념의 경계를 명확히 긋는 부분이다 — loss는 순수하게 "예측 vs 정답"의 오차만 다루고, cost는 그 위에 모델 자체에 대한 제약까지 포함하는 더 넓은 개념이다.

Objective Function — 최적화 대상의 총칭

최소화든 최대화든, 최적화하려는 목적을 가진 함수를 통칭한다.

  • 최소화 방향 → cost function, loss function (오차를 줄이고 싶으니까)
  • 최대화 방향 → likelihood(우도), reward(강화학습 보상) (클수록 좋으니까)

cost function은 objective function의 부분집합이다. 실무에서는 최대화 문제도 부호를 뒤집어 최소화로 바꾸는 경우가 많아 (예: maximize log-likelihood → minimize negative log-likelihood) 경계가 흐려지지만, 개념적 위계는 이렇다:

Objective FunctionCost FunctionLoss Function\text{Objective Function} \supset \text{Cost Function} \supset \text{Loss Function}